import {
  message
} from "antd";
import axios from "axios";
// import storageUtils from "./storageUtils"
// 提供请求拦截器req就是浏览器发送服务器的请求对象
axios.interceptors.request.use((req) => {
  // const token = storageUtils.getStorage("token")
  let token = localStorage.getItem("token")
  if (token) {
    // 匹配token里面的引号，如果有双引号，替换
    token = token.replace(/\"/g, "")
    req.headers.Authentication = token
  }
  // 在请求拦截器，return结果才会继续往后执行
  return req;
}, (err) => {
  // 控制台就能看到网络请求失败的效果
  Promise.reject(err)
})
// 提供响应拦截器
axios.interceptors.response.use((resp) => {
  return resp
}, (err) => {
  // 处理服务器返回的各种异常,异常结果
  const response = err.response
  console.log(response);
  if (response) {
    switch (response.status) {
      case 500:
        message.error("服务器异常，稍后再试")
        break;
      case 401:
        message.error("身份认证过期，请重新登录")
        localStorage.removeItem("userInfo")
        localStorage.removeItem("token")
        // 跳转回登录
        window.location.href = "/login"
        break;
      case 404:
        message.error("请求路径发生变化")
        break;
    }
  }
  return Promise.reject(err)

})
